package thread.ch03;

/**
 * 因为没有同步来确保Holder对其他线程可见，所以我们称Holder是“非正确发布的”。没有正确发布的对象会导致两种错误。首先，
 * 发布线程以外的任何线程都可以看到Holder域的过期值
 * ，因而看到的是一个null引用或者旧值，即使此刻Holder已经被赋予新值。其次，更坏的情况是，线程看到的Holder引用是最新的
 * ，然后Holder的状态却是过期的。
 * 
 * @author Edgar Zhang
 * 
 */
public class Holder {

	private int n;

	public Holder(int n) {
		this.n = n;
	}

	public void assertSanity() {
		if (n != n) {
			throw new AssertionError("This statment is false.");
		}
	}
}
